There are a number of encoding schemes used to record data on a disk. The encoding schemes are employed to minimize the number of transitions needed to represent data and, therefore, to increase the recording density of data stored on a mass storage device. In actual encoding process, parallel input data is first serialized and converted to a NRZ (non-return to zero) interpretation of the binary data bit pattern. The serialized NRZ data is then encoded according to a coding scheme such as MFM (modified frequency modulation) and RLL (run length limited). The encoded data are then recorded on the magnetic surface on the disk. When reading back the stored data, the encoded bit streams are decoded according to the same code conversion table used during encoding to obtain the original NRZ data.
A number of different implementations of the encoder and decoder to translate one code into another different code have been developed.
For instance, Adaptec Inc.'s disk controller includes a AlC-250 chip to provide code conversion for NRZ to and from MFM code. The same company developed another chip AlC-270 which provides NRZ to/from 2,7 RLL code conversion. Another commercialized encoder/decoder example is Western Digital Corp.'s WD1100-02 MFM generator which only converts NRZ data to and from MFM data symbols with corresponding write precompensation signals.
U.S. Pat. No. 4,691,254 discloses an encoder and decoder that employs a RLL code and has a write precompensation logic circuit.
All of the above devices provide single code conversion corresponding to a single coding scheme in the encoder and decoder.
U.S. Pat. No. 4,651,237 discloses a disk controller that utilizes a state machine having a stored program to manage the translation of multiple codes including MFM and RLL. This software approach for the code conversion in the disk controller could be too slow to cope with high-speed/high-volume heavy data transfer requirements.
For both economic reasons and efficient operation of code conversion, it has been attempted to provide an encoder and decoder capable of handling several different coding schemes for high speed disk storage devices without resorting to the use of extra components.